A typical wireless communication system utilizes a transmitter unit coupled to a receiver unit in a single-input, single-output (SISO) configuration. More recently, multiple-input, multiple-output (MIMO) systems that significantly increases the data transmit capacities of wireless communication systems have been developed. In particular, MIMO is based on the principle that multipath propagation spatial diversity) can be exploited to transmit multiple, independent information streams using co-located antennas and multi-dimensional signal processing. The transmitter includes plurality (multiple) transmit antennas that are utilized to send multiple streams of data. The receiver includes plurality (multiple) receiver antennas configured to receive the streams of data. The transmit streams take multiple paths between the transmit antennas and the receiver antennas. That is, the transmit streams can be described as going through a matrix channel that consists of all possible paths between the plurality of transmit antennas and the plurality of receiver antennas. The plurality of receive antennas generates a received signal vector that is decoded into an approximation of the original information.
A plurality of decoding schemes may be utilized to decode the original information or symbols from the received signal vector. Linear decoders are the least complex and therefore the easiest to implement while maintaining a desired latency (e.g., 10 milliseconds (ms) or less). However, linear decoders provide suboptimal error performance. In contrast with linear decoders, non-linear decoders such as the maximum likelihood decoder (MLD), provide the best (i.e., lowest) error performance. The MLD essentially evaluates many hypotheses for all possible sequences of symbols that might have been transmitted based on all the information available at the receiver, and selects the best fit from all possible sequences. However, the complexity of MLD increases with the number of transmit antennas and increases exponentially based on the constellation of symbols, thus making MLD unworkable for most applications.
Sphere decoding is a type of non-linear decoder that provides a trade-off between the high complexity of MLD and the poor performance of linear detectors. In particular, sphere decoding searches for possible solutions to the transmitted vector within a sphere having a defined radius. The difficulty in sphere decoding is selecting the radius of the sphere. If the radius selected is too small, then very few possible solutions will be considered and the performance of the decoder might be poor, especially at low signal-to-noise ratio (SNR). Conversely, if the radius of the sphere selected is too large, then the complexity of the sphere decoder becomes essentially the same as the MLD decoder.
It would therefore be desirable to provide a method of tuning the sphere radius to optimize the performance of the sphere decoder (i.e., acceptable latency, low bit-error rate (BER)).